<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Markmap</title>
<style>
* {
  margin: 0;
  padding: 0;
}
#mindmap {
  display: block;
  width: 100vw;
  height: 100vh;
  font-weight:400 16px/20px sans-serif;
}
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.14.3/dist/style.min.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://cdn.jsdelivr.net/npm/d3@6.7.0"></script><script src="https://cdn.jsdelivr.net/npm/markmap-view@0.14.3"></script><script src="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.14.3/dist/index.umd.min.js"></script><script>(r => {
          setTimeout(r);
        })(() => {
  const {
    markmap,
    mm
  } = window;
  const toolbar = new markmap.Toolbar();
  toolbar.attach(mm);
  const el = toolbar.render();
  el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
  document.body.append(el);
})</script><script>((getMarkmap, getOptions, root, jsonOptions) => {
        const markmap = getMarkmap();
        window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
      })(() => window.markmap,null,{"type":"root","depth":0,"content":"","children":[{"type":"heading","depth":1,"payload":{"lines":[0,1]},"content":"1.微服务简介","children":[{"type":"heading","depth":2,"payload":{"lines":[1,2]},"content":"1.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[2,3]},"content":"1.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[3,4]},"content":"1.3.微服务架构图"},{"type":"heading","depth":2,"payload":{"lines":[4,5]},"content":"1.4.CAP中占据情况"},{"type":"heading","depth":2,"payload":{"lines":[5,6]},"content":"1.3.微服务架构落地实现方案"}]},{"type":"heading","depth":1,"payload":{"lines":[6,7]},"content":"2.搭建项目基础设施","children":[{"type":"heading","depth":2,"payload":{"lines":[7,8]},"content":"2.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[8,9]},"content":"2.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[9,10]},"content":"2.3.创建项目父工程","children":[{"type":"heading","depth":3,"payload":{"lines":[10,11]},"content":"2.3.1.创建父工程"},{"type":"heading","depth":3,"payload":{"lines":[11,12]},"content":"2.3.2.编写父工程pom.xml"}]},{"type":"heading","depth":2,"payload":{"lines":[12,13]},"content":"2.4.创建项目依赖的公共模块","children":[{"type":"heading","depth":3,"payload":{"lines":[13,14]},"content":"2.4.1.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[14,15]},"content":"2.4.2.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[15,16]},"content":"2.4.3.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[16,17]},"content":"2.4.4.编写模块中实体类"}]},{"type":"heading","depth":2,"payload":{"lines":[17,18]},"content":"2.5.准备项目需要的数据库","children":[{"type":"heading","depth":3,"payload":{"lines":[18,19]},"content":"2.5.1.安装mysql数据库"},{"type":"heading","depth":3,"payload":{"lines":[19,20]},"content":"2.5.2.创建项目需要的数据库"}]},{"type":"heading","depth":2,"payload":{"lines":[20,21]},"content":"2.6.配置使用热部署"}]},{"type":"heading","depth":1,"payload":{"lines":[21,22]},"content":"3.使用Eureka作为注册中心","children":[{"type":"heading","depth":2,"payload":{"lines":[22,23]},"content":"3.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[23,24]},"content":"3.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[24,25]},"content":"3.3.Eureka注册中心简介"},{"type":"heading","depth":2,"payload":{"lines":[25,26]},"content":"3.4.搭建单节点版EUREKA注册中心","children":[{"type":"heading","depth":3,"payload":{"lines":[26,27]},"content":"3.4.1.章节内容简介"},{"type":"heading","depth":3,"payload":{"lines":[27,28]},"content":"3.4.2.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[28,29]},"content":"3.4.3.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[29,30]},"content":"3.4.4.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[30,31]},"content":"3.4.5.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[31,32]},"content":"3.4.6.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[32,33]},"content":"3.4.7.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[33,34]},"content":"3.4.8.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[34,35]},"content":"3.5.搭建集群(高可用)版EUREKA注册中心","children":[{"type":"heading","depth":3,"payload":{"lines":[35,36]},"content":"3.5.1.章节内容简介"},{"type":"heading","depth":3,"payload":{"lines":[36,37]},"content":"3.5.2.搭建Eureka集群中第一个节点"},{"type":"heading","depth":3,"payload":{"lines":[37,38]},"content":"3.5.3.搭建Eureka集群中第二个节点"},{"type":"heading","depth":3,"payload":{"lines":[38,39]},"content":"3.5.4.搭建Eureka集群中第三个节点"},{"type":"heading","depth":3,"payload":{"lines":[39,40]},"content":"3.5.5.配置host"},{"type":"heading","depth":3,"payload":{"lines":[40,41]},"content":"3.5.6.测试集群模块"}]}]},{"type":"heading","depth":1,"payload":{"lines":[41,42]},"content":"4.搭建第一个微服务应用","children":[{"type":"heading","depth":2,"payload":{"lines":[42,43]},"content":"4.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[43,44]},"content":"4.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[44,45]},"content":"4.3.第一个微服务应用简介"},{"type":"heading","depth":2,"payload":{"lines":[45,46]},"content":"4.4.搭建服务提供者第一个节点","children":[{"type":"heading","depth":3,"payload":{"lines":[46,47]},"content":"4.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[47,48]},"content":"4.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[48,49]},"content":"4.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[49,50]},"content":"4.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[50,51]},"content":"4.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[51,52]},"content":"4.4.6.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[52,53]},"content":"4.4.7.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[53,54]},"content":"4.4.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[54,55]},"content":"4.4.9.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[55,56]},"content":"4.4.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[56,57]},"content":"4.4.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[57,58]},"content":"4.5.搭建服务提供者第二个节点","children":[{"type":"heading","depth":3,"payload":{"lines":[58,59]},"content":"4.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[59,60]},"content":"4.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[60,61]},"content":"4.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[61,62]},"content":"4.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[62,63]},"content":"4.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[63,64]},"content":"4.5.6.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[64,65]},"content":"4.5.7.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[65,66]},"content":"4.5.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[66,67]},"content":"4.5.9.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[67,68]},"content":"4.5.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[68,69]},"content":"4.5.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[69,70]},"content":"4.6.搭建服务消费者","children":[{"type":"heading","depth":3,"payload":{"lines":[70,71]},"content":"4.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[71,72]},"content":"4.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[72,73]},"content":"4.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[73,74]},"content":"4.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[74,75]},"content":"4.6.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[75,76]},"content":"4.6.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[76,77]},"content":"4.6.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[77,78]},"content":"4.6.8.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[78,79]},"content":"4.7.启动并测试第一个微服务应用","children":[{"type":"heading","depth":3,"payload":{"lines":[79,80]},"content":"4.7.1.启动第一个微服务应用"},{"type":"heading","depth":3,"payload":{"lines":[80,81]},"content":"4.7.2.测试第一个微服务应用"}]}]},{"type":"heading","depth":1,"payload":{"lines":[81,82]},"content":"5.使用Ribbon实现客户端负载均衡","children":[{"type":"heading","depth":2,"payload":{"lines":[82,83]},"content":"5.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[83,84]},"content":"5.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[84,85]},"content":"5.3.Ribbon简介"},{"type":"heading","depth":2,"payload":{"lines":[85,86]},"content":"5.4.硬编码配置方式使用Ribbon实现负载均衡(使用Ribbon自带的负载均衡策略)","children":[{"type":"heading","depth":3,"payload":{"lines":[86,87]},"content":"5.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[87,88]},"content":"5.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[88,89]},"content":"5.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[89,90]},"content":"5.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[90,91]},"content":"5.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[91,92]},"content":"5.4.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[92,93]},"content":"5.4.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[93,94]},"content":"5.4.8.编写负载均衡规则配置类"},{"type":"heading","depth":3,"payload":{"lines":[94,95]},"content":"5.4.9.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[95,96]},"content":"5.4.10.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[96,97]},"content":"5.5.声明式配置方式使用Ribbon实现负载均衡(使用Ribbon自带的负载均衡策略)","children":[{"type":"heading","depth":3,"payload":{"lines":[97,98]},"content":"5.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[98,99]},"content":"5.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[99,100]},"content":"5.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[100,101]},"content":"5.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[101,102]},"content":"5.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[102,103]},"content":"5.5.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[103,104]},"content":"5.5.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[104,105]},"content":"5.5.8.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[105,106]},"content":"5.5.9.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[106,107]},"content":"5.6.硬编码配置方式使用Ribbon实现负载均衡(使用自定义的Ribbon负载均衡策略)","children":[{"type":"heading","depth":3,"payload":{"lines":[107,108]},"content":"5.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[108,109]},"content":"5.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[109,110]},"content":"5.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[110,111]},"content":"5.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[111,112]},"content":"5.6.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[112,113]},"content":"5.6.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[113,114]},"content":"5.6.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[114,115]},"content":"5.6.8.编写自定义的负载均衡算法策略"},{"type":"heading","depth":3,"payload":{"lines":[115,116]},"content":"5.6.9.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[116,117]},"content":"5.6.10.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[117,118]},"content":"5.7.声明式配置方式使用Ribbon实现负载均衡(使用自定义的Ribbon负载均衡策略)","children":[{"type":"heading","depth":3,"payload":{"lines":[118,119]},"content":"5.7.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[119,120]},"content":"5.7.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[120,121]},"content":"5.7.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[121,122]},"content":"5.7.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[122,123]},"content":"5.7.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[123,124]},"content":"5.7.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[124,125]},"content":"5.7.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[125,126]},"content":"5.7.8.编写自定义的负载均衡算法策略"},{"type":"heading","depth":3,"payload":{"lines":[126,127]},"content":"5.7.9.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[127,128]},"content":"5.7.10.测试模块"}]}]},{"type":"heading","depth":1,"payload":{"lines":[128,129]},"content":"6.使用OpenFeign实现客户端负载均衡","children":[{"type":"heading","depth":2,"payload":{"lines":[129,130]},"content":"6.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[130,131]},"content":"6.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[131,132]},"content":"6.3.OpenFeign简介"},{"type":"heading","depth":2,"payload":{"lines":[132,133]},"content":"6.4.通过配置Ribbon实现对OpenFeign的配置来实现负载均衡","children":[{"type":"heading","depth":3,"payload":{"lines":[133,134]},"content":"6.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[134,135]},"content":"6.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[135,136]},"content":"6.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[136,137]},"content":"6.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[137,138]},"content":"6.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[138,139]},"content":"6.4.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[139,140]},"content":"6.4.7.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[140,141]},"content":"6.4.8.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[141,142]},"content":"6.4.9.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[142,143]},"content":"6.4.10.测试模块"},{"type":"heading","depth":3,"payload":{"lines":[143,144]},"content":"6.4.11.注意事项"}]},{"type":"heading","depth":2,"payload":{"lines":[144,145]},"content":"6.5.通过直接配置OpenFeign实现对OpenFeign的配置来实现负载均衡","children":[{"type":"heading","depth":3,"payload":{"lines":[145,146]},"content":"6.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[146,147]},"content":"6.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[147,148]},"content":"6.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[148,149]},"content":"6.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[149,150]},"content":"6.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[150,151]},"content":"6.5.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[151,152]},"content":"6.5.7.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[152,153]},"content":"6.5.8.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[153,154]},"content":"6.5.9.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[154,155]},"content":"6.5.10.测试模块"},{"type":"heading","depth":3,"payload":{"lines":[155,156]},"content":"6.5.11.注意事项"}]}]},{"type":"heading","depth":1,"payload":{"lines":[156,157]},"content":"7.使用Hystrix实现服务降级和熔断","children":[{"type":"heading","depth":2,"payload":{"lines":[157,158]},"content":"7.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[158,159]},"content":"7.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[159,160]},"content":"7.3.Hystrix简介"},{"type":"heading","depth":2,"payload":{"lines":[160,161]},"content":"7.4.搭建服务提供者第一个节点(Hystrix)","children":[{"type":"heading","depth":3,"payload":{"lines":[161,162]},"content":"7.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[162,163]},"content":"7.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[163,164]},"content":"7.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[164,165]},"content":"7.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[165,166]},"content":"7.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[166,167]},"content":"7.4.6.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[167,168]},"content":"7.4.7.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[168,169]},"content":"7.4.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[169,170]},"content":"7.4.9.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[170,171]},"content":"7.4.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[171,172]},"content":"7.4.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[172,173]},"content":"7.5.搭建服务提供者第二个节点(Hystrix)","children":[{"type":"heading","depth":3,"payload":{"lines":[173,174]},"content":"7.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[174,175]},"content":"7.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[175,176]},"content":"7.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[176,177]},"content":"7.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[177,178]},"content":"7.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[178,179]},"content":"7.5.6.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[179,180]},"content":"7.5.7.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[180,181]},"content":"7.5.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[181,182]},"content":"7.5.9.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[182,183]},"content":"7.5.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[183,184]},"content":"7.5.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[184,185]},"content":"7.6.搭建服务消费者(Hystrix)","children":[{"type":"heading","depth":3,"payload":{"lines":[185,186]},"content":"7.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[186,187]},"content":"7.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[187,188]},"content":"7.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[188,189]},"content":"7.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[189,190]},"content":"7.6.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[190,191]},"content":"7.6.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[191,192]},"content":"7.6.7.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[192,193]},"content":"7.6.8.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[193,194]},"content":"7.6.9.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[194,195]},"content":"7.6.10.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[195,196]},"content":"7.7.测试服务降级和服务熔断(Hystrix)"}]},{"type":"heading","depth":1,"payload":{"lines":[196,197]},"content":"8.使用DashBoard和Turbine监控服务访问情况","children":[{"type":"heading","depth":2,"payload":{"lines":[197,198]},"content":"8.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[198,199]},"content":"8.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[199,200]},"content":"8.3.使用Hystrix DashBoard监控服务单个节点访问情况","children":[{"type":"heading","depth":3,"payload":{"lines":[200,201]},"content":"8.3.1.Hystrix DashBoard简介"},{"type":"heading","depth":3,"payload":{"lines":[201,202]},"content":"8.3.2.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[202,203]},"content":"8.3.3.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[203,204]},"content":"8.3.4.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[204,205]},"content":"8.3.5.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[205,206]},"content":"8.3.6.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[206,207]},"content":"8.3.7.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[207,208]},"content":"8.3.8.修改服务提供者8003主启动类"},{"type":"heading","depth":3,"payload":{"lines":[208,209]},"content":"8.3.9.修改服务提供者8004主启动类"},{"type":"heading","depth":3,"payload":{"lines":[209,210]},"content":"8.3.10.修改服务消费者80主启动类"},{"type":"heading","depth":3,"payload":{"lines":[210,211]},"content":"8.3.11.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[211,212]},"content":"8.4.使用Turbine监控服务多个节点访问情况","children":[{"type":"heading","depth":3,"payload":{"lines":[212,213]},"content":"8.4.1.Turbine简介"},{"type":"heading","depth":3,"payload":{"lines":[213,214]},"content":"8.4.2.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[214,215]},"content":"8.4.3.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[215,216]},"content":"8.4.4.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[216,217]},"content":"8.4.5.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[217,218]},"content":"8.4.6.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[218,219]},"content":"8.4.7.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[219,220]},"content":"8.4.8.修改服务提供者8003主启动类"},{"type":"heading","depth":3,"payload":{"lines":[220,221]},"content":"8.4.9.修改服务提供者8004主启动类"},{"type":"heading","depth":3,"payload":{"lines":[221,222]},"content":"8.4.10.修改服务消费端80主启动类"},{"type":"heading","depth":3,"payload":{"lines":[222,223]},"content":"8.4.11.测试模块"}]}]},{"type":"heading","depth":1,"payload":{"lines":[223,224]},"content":"9.使用GateWay实现网关功能","children":[{"type":"heading","depth":2,"payload":{"lines":[224,225]},"content":"9.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[225,226]},"content":"9.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[226,227]},"content":"9.3.GateWay简介"},{"type":"heading","depth":2,"payload":{"lines":[227,228]},"content":"9.4.硬编码配置方式使用GateWay(非负载均衡模式)","children":[{"type":"heading","depth":3,"payload":{"lines":[228,229]},"content":"9.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[229,230]},"content":"9.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[230,231]},"content":"9.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[231,232]},"content":"9.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[232,233]},"content":"9.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[233,234]},"content":"9.4.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[234,235]},"content":"9.4.7.编写鉴权LoginFilter"},{"type":"heading","depth":3,"payload":{"lines":[235,236]},"content":"9.4.8.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[236,237]},"content":"9.4.7.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[237,238]},"content":"9.5.声明式配置方式使用GateWay(非负载均衡模式)","children":[{"type":"heading","depth":3,"payload":{"lines":[238,239]},"content":"9.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[239,240]},"content":"9.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[240,241]},"content":"9.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[241,242]},"content":"9.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[242,243]},"content":"9.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[243,244]},"content":"9.5.6.编写鉴权LoginFilter"},{"type":"heading","depth":3,"payload":{"lines":[244,245]},"content":"9.5.7.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[245,246]},"content":"9.5.8.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[246,247]},"content":"9.6.硬编码配置方式使用GateWay(负载均衡模式)","children":[{"type":"heading","depth":3,"payload":{"lines":[247,248]},"content":"9.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[248,249]},"content":"9.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[249,250]},"content":"9.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[250,251]},"content":"9.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[251,252]},"content":"9.6.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[252,253]},"content":"9.6.6.编写config"},{"type":"heading","depth":3,"payload":{"lines":[253,254]},"content":"9.6.7.编写鉴权LoginFilter"},{"type":"heading","depth":3,"payload":{"lines":[254,255]},"content":"9.6.8.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[255,256]},"content":"9.6.9.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[256,257]},"content":"9.7.声明式配置方式使用GateWay(负载均衡模式)","children":[{"type":"heading","depth":3,"payload":{"lines":[257,258]},"content":"9.7.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[258,259]},"content":"9.7.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[259,260]},"content":"9.7.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[260,261]},"content":"9.7.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[261,262]},"content":"9.7.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[262,263]},"content":"9.7.6.编写config"},{"type":"heading","depth":3,"payload":{"lines":[263,264]},"content":"9.7.7.编写鉴权LoginFilter"},{"type":"heading","depth":3,"payload":{"lines":[264,265]},"content":"9.7.8.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[265,266]},"content":"9.7.9.测试模块"}]}]},{"type":"heading","depth":1,"payload":{"lines":[266,267]},"content":"10.使用Zipkin+Sleuth实现调用链路追踪","children":[{"type":"heading","depth":2,"payload":{"lines":[267,268]},"content":"10.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[268,269]},"content":"10.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[269,270]},"content":"10.3.Zipkin、Sleuth简介"},{"type":"heading","depth":2,"payload":{"lines":[270,271]},"content":"10.4.搭建服务提供者第一个节点(Sleuth)","children":[{"type":"heading","depth":3,"payload":{"lines":[271,272]},"content":"10.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[272,273]},"content":"10.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[273,274]},"content":"10.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[274,275]},"content":"10.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[275,276]},"content":"10.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[276,277]},"content":"10.4.6.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[277,278]},"content":"10.4.7.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[278,279]},"content":"10.4.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[279,280]},"content":"10.4.9.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[280,281]},"content":"10.4.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[281,282]},"content":"10.4.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[282,283]},"content":"10.5.搭建服务提供者第二个节点(Sleuth)","children":[{"type":"heading","depth":3,"payload":{"lines":[283,284]},"content":"10.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[284,285]},"content":"10.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[285,286]},"content":"10.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[286,287]},"content":"10.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[287,288]},"content":"10.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[288,289]},"content":"10.5.6.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[289,290]},"content":"10.5.7.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[290,291]},"content":"10.5.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[291,292]},"content":"10.5.9.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[292,293]},"content":"10.5.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[293,294]},"content":"10.5.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[294,295]},"content":"10.6.搭建服务消费者","children":[{"type":"heading","depth":3,"payload":{"lines":[295,296]},"content":"10.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[296,297]},"content":"10.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[297,298]},"content":"10.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[298,299]},"content":"10.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[299,300]},"content":"10.6.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[300,301]},"content":"10.6.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[301,302]},"content":"10.6.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[302,303]},"content":"10.6.8.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[303,304]},"content":"10.7.搭建Zipkin"},{"type":"heading","depth":2,"payload":{"lines":[304,305]},"content":"10.8.测试Zipkin+Sleuth实现调用链路追踪"}]},{"type":"heading","depth":1,"payload":{"lines":[305,306]},"content":"11.使用Apollo配置中心管理配置","children":[{"type":"heading","depth":2,"payload":{"lines":[306,307]},"content":"11.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[307,308]},"content":"11.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[308,309]},"content":"11.3.Apollo配置中心简介"},{"type":"heading","depth":2,"payload":{"lines":[309,310]},"content":"11.4.搭建Apollo配置中心"},{"type":"heading","depth":2,"payload":{"lines":[310,311]},"content":"11.5.搭建服务消费者(Apollo)","children":[{"type":"heading","depth":3,"payload":{"lines":[311,312]},"content":"11.5.1.章节内容简介"},{"type":"heading","depth":3,"payload":{"lines":[312,313]},"content":"11.5.2.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[313,314]},"content":"11.5.3.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[314,315]},"content":"11.5.4.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[315,316]},"content":"11.5.5.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[316,317]},"content":"11.5.6.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[317,318]},"content":"11.5.7.编写模块Apollo配置文件"},{"type":"heading","depth":3,"payload":{"lines":[318,319]},"content":"11.5.8.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[319,320]},"content":"11.5.9.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[320,321]},"content":"11.5.10.编写模块listener"},{"type":"heading","depth":3,"payload":{"lines":[321,322]},"content":"11.5.11.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[322,323]},"content":"11.5.12.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[323,324]},"content":"11.5.13.测试模块","children":[{"type":"heading","depth":4,"payload":{"lines":[324,325]},"content":"11.5.13.1.访问Apollo主界面"},{"type":"heading","depth":4,"payload":{"lines":[325,326]},"content":"11.5.13.2.配置Apollo系统参数"},{"type":"heading","depth":4,"payload":{"lines":[326,327]},"content":"11.5.13.3.在Apollo中创建项目"},{"type":"heading","depth":4,"payload":{"lines":[327,328]},"content":"11.5.13.4.启动当前模块"},{"type":"heading","depth":4,"payload":{"lines":[328,329]},"content":"11.5.13.5.测试Apollo"}]}]}]},{"type":"heading","depth":1,"payload":{"lines":[329,330]},"content":"12.使用Seata进行分布式事务控制","children":[{"type":"heading","depth":2,"payload":{"lines":[330,331]},"content":"12.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[331,332]},"content":"12.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[332,333]},"content":"12.3.Seata简介"},{"type":"heading","depth":2,"payload":{"lines":[333,334]},"content":"12.4.搭建Seata Server"},{"type":"heading","depth":2,"payload":{"lines":[334,335]},"content":"12.5.准备数据库环境"},{"type":"heading","depth":2,"payload":{"lines":[335,336]},"content":"12.6.搭建服务提供者Account服务(Seata)","children":[{"type":"heading","depth":3,"payload":{"lines":[336,337]},"content":"12.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[337,338]},"content":"12.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[338,339]},"content":"12.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[339,340]},"content":"12.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[340,341]},"content":"12.6.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[341,342]},"content":"12.6.6.编写Apollo配置文件"},{"type":"heading","depth":3,"payload":{"lines":[342,343]},"content":"12.6.7.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[343,344]},"content":"12.6.8.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[344,345]},"content":"12.6.9.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[345,346]},"content":"12.6.10.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[346,347]},"content":"12.6.11.编写模块listener"},{"type":"heading","depth":3,"payload":{"lines":[347,348]},"content":"12.6.12.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[348,349]},"content":"12.6.13.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[349,350]},"content":"12.6.14.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[350,351]},"content":"12.6.搭建服务提供者Storage服务(Seata)","children":[{"type":"heading","depth":3,"payload":{"lines":[351,352]},"content":"12.7.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[352,353]},"content":"12.7.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[353,354]},"content":"12.7.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[354,355]},"content":"12.7.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[355,356]},"content":"12.7.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[356,357]},"content":"12.7.6.编写Apollo配置文件"},{"type":"heading","depth":3,"payload":{"lines":[357,358]},"content":"12.7.7.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[358,359]},"content":"12.7.8.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[359,360]},"content":"12.7.9.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[360,361]},"content":"12.7.10.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[361,362]},"content":"12.7.11.编写模块listener"},{"type":"heading","depth":3,"payload":{"lines":[362,363]},"content":"12.7.12.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[363,364]},"content":"12.7.13.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[364,365]},"content":"12.7.14.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[365,366]},"content":"12.8.搭建服务消费者","children":[{"type":"heading","depth":3,"payload":{"lines":[366,367]},"content":"12.8.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[367,368]},"content":"12.8.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[368,369]},"content":"12.8.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[369,370]},"content":"12.8.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[370,371]},"content":"12.8.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[371,372]},"content":"12.8.6.编写Apollo配置文件"},{"type":"heading","depth":3,"payload":{"lines":[372,373]},"content":"12.8.7.编写模块Mybatis配置文件"},{"type":"heading","depth":3,"payload":{"lines":[373,374]},"content":"12.8.8.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[374,375]},"content":"12.8.9.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[375,376]},"content":"12.8.10.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[376,377]},"content":"12.8.11.编写模块listener"},{"type":"heading","depth":3,"payload":{"lines":[377,378]},"content":"12.8.12.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[378,379]},"content":"12.8.13.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[379,380]},"content":"12.8.14.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[380,381]},"content":"12.8.测试使用Seata进行分布式事务控制"},{"type":"heading","depth":2,"payload":{"lines":[381,382]},"content":"12.9.注意事项"}]},{"type":"heading","depth":1,"payload":{"lines":[382,383]},"content":"13.使用SpringBootAdmin监控服务","children":[{"type":"heading","depth":2,"payload":{"lines":[383,384]},"content":"13.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[384,385]},"content":"13.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[385,386]},"content":"13.3.SpringBootAdmin简介"},{"type":"heading","depth":2,"payload":{"lines":[386,387]},"content":"13.4.搭建SpringBootAdmin的Server端","children":[{"type":"heading","depth":3,"payload":{"lines":[387,388]},"content":"13.4.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[388,389]},"content":"13.4.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[389,390]},"content":"13.4.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[390,391]},"content":"13.4.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[391,392]},"content":"13.4.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[392,393]},"content":"13.4.6.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[393,394]},"content":"13.5.搭建SpringBootAdmin的Client端","children":[{"type":"heading","depth":3,"payload":{"lines":[394,395]},"content":"13.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[395,396]},"content":"13.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[396,397]},"content":"13.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[397,398]},"content":"13.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[398,399]},"content":"13.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[399,400]},"content":"13.5.6.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[400,401]},"content":"13.5.7.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[401,402]},"content":"13.5.8.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[402,403]},"content":"13.6.测试使用SpringBootAdmin监控服务"}]},{"type":"heading","depth":1,"payload":{"lines":[403,404]},"content":"14.设计适用于生产环境的日志系统","children":[{"type":"heading","depth":2,"payload":{"lines":[404,405]},"content":"14.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[405,406]},"content":"14.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[406,407]},"content":"14.3.适用于生产环境的日志系统简介"},{"type":"heading","depth":2,"payload":{"lines":[407,408]},"content":"14.4.ELK简介"},{"type":"heading","depth":2,"payload":{"lines":[408,409]},"content":"14.5.搭建具有适用于生产环境的日志系统的服务消费端","children":[{"type":"heading","depth":3,"payload":{"lines":[409,410]},"content":"14.5.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[410,411]},"content":"14.5.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[411,412]},"content":"14.5.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[412,413]},"content":"14.5.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[413,414]},"content":"14.5.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[414,415]},"content":"14.5.6.编写模块logback-custom.xml"},{"type":"heading","depth":3,"payload":{"lines":[415,416]},"content":"14.5.7.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[416,417]},"content":"14.5.8.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[417,418]},"content":"14.5.9.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[418,419]},"content":"14.6.搭建ELK"},{"type":"heading","depth":2,"payload":{"lines":[419,420]},"content":"14.7.测试适用于生产环境的日志系统简介","children":[{"type":"heading","depth":3,"payload":{"lines":[420,421]},"content":"14.7.1.启动相关服务"},{"type":"heading","depth":3,"payload":{"lines":[421,422]},"content":"14.7.2.测试日志输出到控制台时自定义日志格式"},{"type":"heading","depth":3,"payload":{"lines":[422,423]},"content":"14.7.3.测试日志输出文件"},{"type":"heading","depth":3,"payload":{"lines":[423,424]},"content":"14.7.4.测试在日志输出中包含服务调用链路信息"},{"type":"heading","depth":3,"payload":{"lines":[424,425]},"content":"14.7.3.测试将日志实时推送到ELK中"}]}]},{"type":"heading","depth":1,"payload":{"lines":[425,426]},"content":"15.OpenFeign高级用法","children":[{"type":"heading","depth":2,"payload":{"lines":[426,427]},"content":"15.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[427,428]},"content":"15.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[428,429]},"content":"15.3.搭建服务消费者","children":[{"type":"heading","depth":3,"payload":{"lines":[429,430]},"content":"15.3.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[430,431]},"content":"15.3.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[431,432]},"content":"15.3.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[432,433]},"content":"15.3.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[433,434]},"content":"15.3.5.编写模块application.yml"},{"type":"heading","depth":3,"payload":{"lines":[434,435]},"content":"15.3.6.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[435,436]},"content":"15.3.7.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[436,437]},"content":"15.3.8.编写模块interceptor"},{"type":"heading","depth":3,"payload":{"lines":[437,438]},"content":"15.3.9.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[438,439]},"content":"15.3.10.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[439,440]},"content":"15.4.测试OpenFeign高级用法","children":[{"type":"heading","depth":3,"payload":{"lines":[440,441]},"content":"15.4.1.测试动态服务名"},{"type":"heading","depth":3,"payload":{"lines":[441,442]},"content":"15.4.2.测试openfeign拦截器"}]}]},{"type":"heading","depth":1,"payload":{"lines":[442,443]},"content":"16.使用持续集成快捷部署服务","children":[{"type":"heading","depth":2,"payload":{"lines":[443,444]},"content":"16.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[444,445]},"content":"16.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[445,446]},"content":"16.3.持续集成微服务到Docker中","children":[{"type":"heading","depth":3,"payload":{"lines":[446,447]},"content":"16.3.1.持续集成微服务到Docker中流程说明"},{"type":"heading","depth":3,"payload":{"lines":[447,448]},"content":"16.3.2.搭建Docker"},{"type":"heading","depth":3,"payload":{"lines":[448,449]},"content":"16.3.3.搭建Harbor"},{"type":"heading","depth":3,"payload":{"lines":[449,450]},"content":"16.3.4.搭建Jenkins"},{"type":"heading","depth":3,"payload":{"lines":[450,451]},"content":"16.3.5.搭建持续集成使用的微服务","children":[{"type":"heading","depth":4,"payload":{"lines":[451,452]},"content":"16.3.5.1.模块简介"},{"type":"heading","depth":4,"payload":{"lines":[452,453]},"content":"16.3.5.2.模块目录结构"},{"type":"heading","depth":4,"payload":{"lines":[453,454]},"content":"16.3.5.3.创建模块"},{"type":"heading","depth":4,"payload":{"lines":[454,455]},"content":"16.3.5.4.编写模块pom.xml"},{"type":"heading","depth":4,"payload":{"lines":[455,456]},"content":"16.3.5.5.编写模块application.yml"},{"type":"heading","depth":4,"payload":{"lines":[456,457]},"content":"16.3.5.6.编写模块controller"},{"type":"heading","depth":4,"payload":{"lines":[457,458]},"content":"16.3.5.7.编写模块主启动类"},{"type":"heading","depth":4,"payload":{"lines":[458,459]},"content":"16.3.5.8.编写模块Dockerfile"},{"type":"heading","depth":4,"payload":{"lines":[459,460]},"content":"16.3.5.9.本地测试模块"}]},{"type":"heading","depth":3,"payload":{"lines":[460,461]},"content":"16.3.6.测试docker的maven插件"},{"type":"heading","depth":3,"payload":{"lines":[461,462]},"content":"16.3.7.持续集成Jekins相关配置","children":[{"type":"heading","depth":4,"payload":{"lines":[462,463]},"content":"16.3.7.1.编写Jenkinsfile"},{"type":"heading","depth":4,"payload":{"lines":[463,464]},"content":"16.3.7.2.在Jekins中配置项目"},{"type":"heading","depth":4,"payload":{"lines":[464,465]},"content":"16.3.7.3.编写持续集成脚本"}]},{"type":"heading","depth":3,"payload":{"lines":[465,466]},"content":"16.3.8.测试持续集成微服务到docker中"},{"type":"heading","depth":3,"payload":{"lines":[466,467]},"content":"16.3.9.使用Webhook触发持续集成","children":[{"type":"heading","depth":4,"payload":{"lines":[467,468]},"content":"16.3.9.1.webhook的作用"},{"type":"heading","depth":4,"payload":{"lines":[468,469]},"content":"16.3.9.2.使用webhook前准备工作"},{"type":"heading","depth":4,"payload":{"lines":[469,470]},"content":"16.3.9.3.配置使用webhook"},{"type":"heading","depth":4,"payload":{"lines":[470,471]},"content":"16.3.9.4.配置使用的Jenkinsfile"},{"type":"heading","depth":4,"payload":{"lines":[471,472]},"content":"16.3.9.5.测试使用Webhook触发持续集成"}]}]},{"type":"heading","depth":2,"payload":{"lines":[472,473]},"content":"16.4.持续集成微服务到k8s中","children":[{"type":"heading","depth":3,"payload":{"lines":[473,474]},"content":"16.4.1.持续集成微服务到k8s中流程说明"},{"type":"heading","depth":3,"payload":{"lines":[474,475]},"content":"16.4.2.搭建Docker"},{"type":"heading","depth":3,"payload":{"lines":[475,476]},"content":"16.4.3.搭建Harbor"},{"type":"heading","depth":3,"payload":{"lines":[476,477]},"content":"16.4.4.搭建Jenkins"},{"type":"heading","depth":3,"payload":{"lines":[477,478]},"content":"16.4.5.搭建Minikube或K8s"},{"type":"heading","depth":3,"payload":{"lines":[478,479]},"content":"16.4.6.配置Minikube或Kubernetes","children":[{"type":"heading","depth":4,"payload":{"lines":[479,480]},"content":"16.4.6.1.配置minikube","children":[{"type":"heading","depth":5,"payload":{"lines":[480,481]},"content":"16.4.6.1.1.协议类型"},{"type":"heading","depth":5,"payload":{"lines":[481,482]},"content":"16.4.6.1.2.配置配置minikube的所有工作节点上的使用的docker"},{"type":"heading","depth":5,"payload":{"lines":[482,483]},"content":"16.4.6.1.3.配置docker中minikube容器内部使用的docker"},{"type":"heading","depth":5,"payload":{"lines":[483,484]},"content":"16.4.6.1.4.配置Minikube从harbor拉取镜像时使用的秘钥"}]},{"type":"heading","depth":4,"payload":{"lines":[484,485]},"content":"16.4.6.2.配置kubernetes","children":[{"type":"heading","depth":5,"payload":{"lines":[485,486]},"content":"16.4.6.2.1.协议类型"}]},{"type":"heading","depth":4,"payload":{"lines":[486,487]},"content":"16.4.6.3.配置minikube","children":[{"type":"heading","depth":5,"payload":{"lines":[487,488]},"content":"16.4.6.3.1.协议类型"}]},{"type":"heading","depth":4,"payload":{"lines":[488,489]},"content":"16.4.6.4.配置Kubernetes","children":[{"type":"heading","depth":5,"payload":{"lines":[489,490]},"content":"16.4.6.4.1.协议类型"}]}]},{"type":"heading","depth":3,"payload":{"lines":[490,491]},"content":"16.4.7.搭建持续集成使用的微服务","children":[{"type":"heading","depth":4,"payload":{"lines":[491,492]},"content":"16.4.7.1.模块简介"},{"type":"heading","depth":4,"payload":{"lines":[492,493]},"content":"16.4.7.2.模块目录结构"},{"type":"heading","depth":4,"payload":{"lines":[493,494]},"content":"16.4.7.3.创建模块"},{"type":"heading","depth":4,"payload":{"lines":[494,495]},"content":"16.4.7.4.编写模块pom.xml"},{"type":"heading","depth":4,"payload":{"lines":[495,496]},"content":"16.4.7.5.编写模块application.yml"},{"type":"heading","depth":4,"payload":{"lines":[496,497]},"content":"16.4.7.6.编写模块controller"},{"type":"heading","depth":4,"payload":{"lines":[497,498]},"content":"16.4.7.7.编写模块主启动类"},{"type":"heading","depth":4,"payload":{"lines":[498,499]},"content":"16.4.7.8.编写模块Dockerfile"},{"type":"heading","depth":4,"payload":{"lines":[499,500]},"content":"16.4.7.9.本地测试模块"}]},{"type":"heading","depth":3,"payload":{"lines":[500,501]},"content":"16.4.8.测试docker的maven插件"},{"type":"heading","depth":3,"payload":{"lines":[501,502]},"content":"16.4.9.持续集成Jekins相关配置","children":[{"type":"heading","depth":4,"payload":{"lines":[502,503]},"content":"16.4.9.1.编写Jenkinsfile"},{"type":"heading","depth":4,"payload":{"lines":[503,504]},"content":"16.4.9.2.在Jekins中配置项目"},{"type":"heading","depth":4,"payload":{"lines":[504,505]},"content":"16.4.9.3.编写yaml和持续集成脚本"}]},{"type":"heading","depth":3,"payload":{"lines":[505,506]},"content":"16.4.10.测试持续集成微服务到minikube中或k8s中","children":[{"type":"heading","depth":4,"payload":{"lines":[506,507]},"content":"16.4.10.1.测试持续集成微服务到minikube中"}]},{"type":"heading","depth":3,"payload":{"lines":[507,508]},"content":"16.4.10.使用Webhook触发持续集成","children":[{"type":"heading","depth":4,"payload":{"lines":[508,509]},"content":"16.4.10.1.webhook的作用"},{"type":"heading","depth":4,"payload":{"lines":[509,510]},"content":"16.4.10.2.使用webhook前准备工作"},{"type":"heading","depth":4,"payload":{"lines":[510,511]},"content":"16.4.10.3.配置使用webhook"},{"type":"heading","depth":4,"payload":{"lines":[511,512]},"content":"16.4.10.4.配置使用的Jenkinsfile"},{"type":"heading","depth":4,"payload":{"lines":[512,513]},"content":"16.4.10.5.测试使用Webhook触发持续集成"}]}]}]},{"type":"heading","depth":1,"payload":{"lines":[513,514]},"content":"17.让微服务区分多种不同环境","children":[{"type":"heading","depth":2,"payload":{"lines":[514,515]},"content":"17.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[515,516]},"content":"17.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[516,517]},"content":"17.3.模块简介"},{"type":"heading","depth":2,"payload":{"lines":[517,518]},"content":"17.4.模块目录结构"},{"type":"heading","depth":2,"payload":{"lines":[518,519]},"content":"17.5.创建模块"},{"type":"heading","depth":2,"payload":{"lines":[519,520]},"content":"17.6.在父工程pom.xml添加多环境配置"},{"type":"heading","depth":2,"payload":{"lines":[520,521]},"content":"17.7.编写模块pom.xml"},{"type":"heading","depth":2,"payload":{"lines":[521,522]},"content":"17.8.编写模块配置文件"},{"type":"heading","depth":2,"payload":{"lines":[522,523]},"content":"17.9.编写模块config"},{"type":"heading","depth":2,"payload":{"lines":[523,524]},"content":"17.10.编写模块service"},{"type":"heading","depth":2,"payload":{"lines":[524,525]},"content":"17.11.编写模块controller"},{"type":"heading","depth":2,"payload":{"lines":[525,526]},"content":"17.12.编写模块主启动类"},{"type":"heading","depth":2,"payload":{"lines":[526,527]},"content":"17.13.搭建Zipkin和ELK"},{"type":"heading","depth":2,"payload":{"lines":[527,528]},"content":"17.14.测试让微服务区分多种不同环境","children":[{"type":"heading","depth":3,"payload":{"lines":[528,529]},"content":"17.14.1.测试多环境运行"},{"type":"heading","depth":3,"payload":{"lines":[529,530]},"content":"17.14.2.测试多环境打包"},{"type":"heading","depth":3,"payload":{"lines":[530,531]},"content":"17.14.2.测试多环境输出对应环境的日志"}]}]},{"type":"heading","depth":1,"payload":{"lines":[531,532]},"content":"18.使用mycat提升数据库吞吐能力","children":[{"type":"heading","depth":2,"payload":{"lines":[532,533]},"content":"18.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[533,534]},"content":"18.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[534,535]},"content":"18.3.搭建mycat+mysql"},{"type":"heading","depth":2,"payload":{"lines":[535,536]},"content":"18.4.配置mycat"},{"type":"heading","depth":2,"payload":{"lines":[536,537]},"content":"18.5.使用mycat"}]},{"type":"heading","depth":1,"payload":{"lines":[537,538]},"content":"19.使用rancher管理docker和Kubernetes","children":[{"type":"heading","depth":2,"payload":{"lines":[538,539]},"content":"19.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[539,540]},"content":"19.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[540,541]},"content":"19.3.使用rancher管理docker","children":[{"type":"heading","depth":3,"payload":{"lines":[541,542]},"content":"19.3.1.搭建rancher"},{"type":"heading","depth":3,"payload":{"lines":[542,543]},"content":"19.3.2.搭建用于测试使用rancher管理docker的微服务","children":[{"type":"heading","depth":4,"payload":{"lines":[543,544]},"content":"19.3.2.1.模块简介"},{"type":"heading","depth":4,"payload":{"lines":[544,545]},"content":"19.3.2.2.模块目录结构"},{"type":"heading","depth":4,"payload":{"lines":[545,546]},"content":"19.3.2.3.创建模块"},{"type":"heading","depth":4,"payload":{"lines":[546,547]},"content":"19.3.2.4.编写模块pom.xml"},{"type":"heading","depth":4,"payload":{"lines":[547,548]},"content":"19.3.2.5.编写模块配置文件"},{"type":"heading","depth":4,"payload":{"lines":[548,549]},"content":"19.3.2.6.编写模块controller"},{"type":"heading","depth":4,"payload":{"lines":[549,550]},"content":"19.3.2.7.编写模块config"},{"type":"heading","depth":4,"payload":{"lines":[550,551]},"content":"19.3.2.8.编写模块主启动类"},{"type":"heading","depth":4,"payload":{"lines":[551,552]},"content":"19.3.2.9.编写模块Dockerfile"}]},{"type":"heading","depth":3,"payload":{"lines":[552,553]},"content":"19.3.3.配置rancher连接docker"},{"type":"heading","depth":3,"payload":{"lines":[553,554]},"content":"19.3.4.配置rancher连接harbor使用的认证"},{"type":"heading","depth":3,"payload":{"lines":[554,555]},"content":"19.3.5.使用docker的maven插件推送镜像到harbor"},{"type":"heading","depth":3,"payload":{"lines":[555,556]},"content":"19.3.6.使用rancher管理docker容器","children":[{"type":"heading","depth":4,"payload":{"lines":[556,557]},"content":"19.3.6.1.添加docker容器"},{"type":"heading","depth":4,"payload":{"lines":[557,558]},"content":"19.3.6.2.测试使用rancher管理docker容器"}]},{"type":"heading","depth":3,"payload":{"lines":[558,559]},"content":"19.3.7.使用rancher对应用进行扩容","children":[{"type":"heading","depth":4,"payload":{"lines":[559,560]},"content":"19.3.7.1.添加应用"},{"type":"heading","depth":4,"payload":{"lines":[560,561]},"content":"19.3.7.2.配置WebHooks"},{"type":"heading","depth":4,"payload":{"lines":[561,562]},"content":"19.3.7.3.使用postman触发扩容"},{"type":"heading","depth":4,"payload":{"lines":[562,563]},"content":"19.3.7.4.为扩容后的应用添加负载均衡器"},{"type":"heading","depth":4,"payload":{"lines":[563,564]},"content":"19.3.7.5.查看扩容后每个节点的日志","children":[{"type":"heading","depth":5,"payload":{"lines":[564,565]},"content":"19.3.7.5.1.在kibana为日志创建索引"},{"type":"heading","depth":5,"payload":{"lines":[565,566]},"content":"19.3.7.5.2.获取扩容后节点的ip"},{"type":"heading","depth":5,"payload":{"lines":[566,567]},"content":"19.3.7.5.3.查看日志"}]},{"type":"heading","depth":4,"payload":{"lines":[567,568]},"content":"19.3.7.6.为rancher设计扩容缩容算法"}]}]},{"type":"heading","depth":2,"payload":{"lines":[568,569]},"content":"19.4.使用rancher管理Kubernetes"}]},{"type":"heading","depth":1,"payload":{"lines":[569,570]},"content":"20.综合案例","children":[{"type":"heading","depth":2,"payload":{"lines":[570,571]},"content":"20.1.章节内容概述"},{"type":"heading","depth":2,"payload":{"lines":[571,572]},"content":"20.2.章节内容大纲"},{"type":"heading","depth":2,"payload":{"lines":[572,573]},"content":"20.3.综合案例简介"},{"type":"heading","depth":2,"payload":{"lines":[573,574]},"content":"20.4.在父工程pom.xml添加多环境配置"},{"type":"heading","depth":2,"payload":{"lines":[574,575]},"content":"20.5.搭建单节点版EUREKA注册中心","children":[{"type":"heading","depth":3,"payload":{"lines":[575,576]},"content":"20.5.1.章节内容简介"},{"type":"heading","depth":3,"payload":{"lines":[576,577]},"content":"20.5.2.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[577,578]},"content":"20.5.3.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[578,579]},"content":"20.5.4.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[579,580]},"content":"20.5.5.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[580,581]},"content":"20.5.6.编写模块配置文件"},{"type":"heading","depth":3,"payload":{"lines":[581,582]},"content":"20.5.7.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[582,583]},"content":"20.5.8.编写模块主启动类"},{"type":"heading","depth":3,"payload":{"lines":[583,584]},"content":"20.5.9.测试模块"}]},{"type":"heading","depth":2,"payload":{"lines":[584,585]},"content":"20.6.搭建服务提供者第一个节点","children":[{"type":"heading","depth":3,"payload":{"lines":[585,586]},"content":"20.6.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[586,587]},"content":"20.6.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[587,588]},"content":"20.6.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[588,589]},"content":"20.6.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[589,590]},"content":"20.6.5.编写模块配置文件"},{"type":"heading","depth":3,"payload":{"lines":[590,591]},"content":"20.6.6.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[591,592]},"content":"20.6.7.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[592,593]},"content":"20.6.8.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[593,594]},"content":"20.6.9.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[594,595]},"content":"20.6.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[595,596]},"content":"20.6.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[596,597]},"content":"20.7.搭建服务提供者第二个节点","children":[{"type":"heading","depth":3,"payload":{"lines":[597,598]},"content":"20.7.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[598,599]},"content":"20.7.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[599,600]},"content":"20.7.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[600,601]},"content":"20.7.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[601,602]},"content":"20.7.5.编写模块配置文件"},{"type":"heading","depth":3,"payload":{"lines":[602,603]},"content":"20.7.6.编写模块dao"},{"type":"heading","depth":3,"payload":{"lines":[603,604]},"content":"20.7.7.编写模块service"},{"type":"heading","depth":3,"payload":{"lines":[604,605]},"content":"20.7.8.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[605,606]},"content":"20.7.9.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[606,607]},"content":"20.7.10.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[607,608]},"content":"20.7.11.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[608,609]},"content":"20.8.搭建服务消费者","children":[{"type":"heading","depth":3,"payload":{"lines":[609,610]},"content":"20.8.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[610,611]},"content":"20.8.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[611,612]},"content":"20.8.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[612,613]},"content":"20.8.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[613,614]},"content":"20.8.5.编写模块配置文件"},{"type":"heading","depth":3,"payload":{"lines":[614,615]},"content":"20.8.6.编写模块service实现类"},{"type":"heading","depth":3,"payload":{"lines":[615,616]},"content":"20.8.7.编写模块controller"},{"type":"heading","depth":3,"payload":{"lines":[616,617]},"content":"20.8.8.编写模块config"},{"type":"heading","depth":3,"payload":{"lines":[617,618]},"content":"20.8.9.编写模块interceptor"},{"type":"heading","depth":3,"payload":{"lines":[618,619]},"content":"20.8.10.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[619,620]},"content":"20.9.搭建SpringBootAdminServer","children":[{"type":"heading","depth":3,"payload":{"lines":[620,621]},"content":"20.9.1.模块简介"},{"type":"heading","depth":3,"payload":{"lines":[621,622]},"content":"20.9.2.模块目录结构"},{"type":"heading","depth":3,"payload":{"lines":[622,623]},"content":"20.9.3.创建模块"},{"type":"heading","depth":3,"payload":{"lines":[623,624]},"content":"20.9.4.编写模块pom.xml"},{"type":"heading","depth":3,"payload":{"lines":[624,625]},"content":"20.9.5.编写模块配置文件"},{"type":"heading","depth":3,"payload":{"lines":[625,626]},"content":"20.9.6.编写模块主启动类"}]},{"type":"heading","depth":2,"payload":{"lines":[626,627]},"content":"20.10.测试适用于生产环境的微服务","children":[{"type":"heading","depth":3,"payload":{"lines":[627,628]},"content":"20.10.1.测试多环境相关配置","children":[{"type":"heading","depth":4,"payload":{"lines":[628,629]},"content":"20.10.1.1.测试多环境运行"},{"type":"heading","depth":4,"payload":{"lines":[629,630]},"content":"20.10.1.2.测试多环境打包"}]},{"type":"heading","depth":3,"payload":{"lines":[630,631]},"content":"20.10.2.测试微服务监控技术"},{"type":"heading","depth":3,"payload":{"lines":[631,632]},"content":"20.10.3.测试更完善的日志系统","children":[{"type":"heading","depth":4,"payload":{"lines":[632,633]},"content":"20.10.3.1.测试输出日志到控制台"},{"type":"heading","depth":4,"payload":{"lines":[633,634]},"content":"20.10.3.2.测试输出日志到文件"},{"type":"heading","depth":4,"payload":{"lines":[634,635]},"content":"20.10.3.2.测试推送日志到ELK中"}]}]}]}],"payload":{}},null)</script>
</body>
</html>
